const Router = require('koa-router')
const router = new Router()
const axios = require('axios')

router.post('/aiplan/result', async (ctx) => {
  // console.log(ctx.request.body);
  const message = ctx.request.body.content
  console.log(message);
  
  const data = {
    model: 'deepseek-r1:8b', // 模型名称
    messages: [
      {
        role: 'user', // 角色
        content: `请你根据数组${message.travelPlaceList}中的地址为我安排一个为期${message.travelDays}天的行程，每天都要有景点能参观并且不能与之前日期游玩过的景点重复，出行时间是${message.startDate}至${message.endDate}，行程的风格是${message.travelStyle}。返回的结果给我以JSON对象格式返回。
        这个JSON对象的组成有三个属性，属性destination的值为本次旅行景点所在的目标城市名字，值为一个字符串；属性  highLights的值是一个数组，这个数组中的每一项是一个字符串，代表本次行程亮点，由景区名称组成；属性travelDetail的值是一个数组这个数组中的每一项是一个对象，这个对象中表示的是每天的行程详情。
        属性travelDetail数组中的的每一项是一个对象并且由以下几个属性组成，属性dayDate表示当天行程日期，值的格式为2025-02-27这种；属性dayNum表示当天是第几天，值为Number类型；属性dayTrip表示当天行程详情，值是一个数组，数组中的每一项是一个对象，下面是这个dayTrip数组中每一项的组成。
        在dayTrip这个数组中每一项由下面几个属性组成，属性scenicName的值为景点名称；属性travelTime的值为游览时间多少，单位是小时；属性startTime的值为当前景区开始游览时间，例如"09:00"；属性endTime的值为当前景区游览结束时间，例如"12:00"；属性introduction的值为景区简介；属性trravelMode的值为推荐出行方式，由两个字组成例如：“步行”，只写一种最推荐的；属性workTime的值为当前推荐出行方式预计花费时间，单位是分钟。
        只需要给我返回上述要求的JSON格式数据`
      }
    ],
    stream: false // 是否流式返回
  }
  // 根deepseek通信
  try {
    const response = await axios.post('http://localhost:11434/api/chat', data)
    console.log(response.data.message.content);
    ctx.body = {
      code: 200,
      content: response.data.message.content
    }
  } catch (error) {
    ctx.body = {
      code: 500,
      data: error,
      msg: '服务器异常'
    }
  }

})

module.exports = {
  aiPlan: router
}